<?php  if (!defined('BASEPATH')) exit('No direct script access allowed');

require_once APPPATH . 'controllers/admin.php';

/**
 * Контроллер просмотра и редактирования изображений для контента
 *
 * @package CoreFramework
 * @version 1.0
 * @author Gennadiy Kozlenko
 */
class Admin_Manage_Images extends Admin {
   
   /**
    * Конструктор класса
    *
    * @access public
    * @return Admin_Manage_Menu_Contents
    */
   function Admin_Manage_Images() {
      parent::Admin();
      $this->set_menu(4, 2);
      $this->load->language('button');
   } // end Admin_Manage_Images
   
   /**
    * Метод по умолчанию
    *
    * @access public
    */
   function index() {
      $data = array();
      $this->load->helper('link');
      $this->load->model('m_select_images');
      $this->load->library('table_builder');
      $this->table_builder->set_model($this->m_select_images);
      $this->table_builder->add_button(create_link($this->get_controller(), 'add'), $this->lang->line('add_button'));
      $this->table_builder->add_button(create_link($this->get_controller(), 'edit'), $this->lang->line('edit_button'));
      $this->table_builder->add_button(create_link($this->get_controller(), 'delete'), $this->lang->line('delete_button'), $this->lang->line('images_delete_confirmation'));
      $data['table'] = $this->table_builder->generate();
      $this->set_content($this->parser->parse('admin/manage_images.html', $data, true));
      $this->display();
   } // end index
   
   /**
    * Метод удаления изображений
    *
    * @access public
    */
   function delete() {
      $ids = $this->input->post('ids');
      if (is_array($ids) && 0 < count($ids)) {
         $this->load->model('m_image');
         foreach ($ids as $id) {
            $this->m_image->set_id($id);
            $this->m_image->delete();
         }
         $this->set_message($this->lang->line('delete_images_succ'), 'info', true);
      }
      $this->redirect($this->get_controller());
   } // end pause
   
   /**
    * Метод добавления изображений
    * Редиректит на нужный контроллер
    *
    * @access public
    */
   function add() {
      $this->redirect('admin_update_image');
   } // end add
   
   /**
    * Метод изменения изображений
    * Редиректит на нужный контроллер
    *
    * @access public
    */
   function edit() {
      $ids = $this->input->post('ids');
      if (is_array($ids) && 0 < count($ids)) {
         $id = array_shift($ids);
         $this->redirect('admin_update_image', '', array('id' => $id));
      }
      $this->redirect($this->get_controller());
   } // end edit
   
   /**
    * Получение списка изображений в виде js листи
    *
    */
   function jslist() {
      $this->set_layout('empty');
      $this->output->set_header('Content-Type: text/javascript; charset=' . $this->config->item('charset'));
      // Получаем список изображений
      $images = array();
      $this->load->model('m_table');
      $this->m_table->set_table('images');
      foreach ($this->m_table->get_results() as $result) {
         $item = array(
            'title' => $result['title'],
            'image' => base_url() . $result['image']
         );
         array_push($images, $item);
      }
      $data = array(
         'images' => $images
      );
      $this->set_content($this->parser->parse('admin/images_list.html', $data, true));
      $this->display();
   } // end get_list
   
}
